package org.metasketch.simulator.tools.channels.dynamic;

import java.util.ArrayList;
import java.util.List;

import org.metasketch.simulator.tools.transactions.StepName;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.thoughtworks.xstream.annotations.XStreamOmitField;

@XStreamAlias("step")
public class StepChannel {

	@XStreamAsAttribute
	protected String steps;

	@XStreamOmitField
	List<StepName> stepNames = new ArrayList<StepName>();

	// just one expression which will determine which channel it goes to...If
	// this is defined, it supercedes the definition of the list of channels
	@XStreamAsAttribute
	protected String expression;

	// the list of channels with percentage options...
	@XStreamImplicit
	protected List<ChannelDistribution> channels = new ArrayList<ChannelDistribution>();

	public String getSteps() {
		return steps;
	}

	public void setSteps(String steps) {
		this.steps = steps;
	}

	public String getExpression() {
		return expression;
	}

	public void setExpression(String expression) {
		this.expression = expression;
	}

	public List<ChannelDistribution> getChannels() {
		return channels;
	}

	public void setChannels(List<ChannelDistribution> channels) {
		this.channels = channels;
	}

	public List<StepName> getStepNames() {
		return stepNames;
	}

	public void setStepNames(List<StepName> stepNames) {
		this.stepNames = stepNames;
	}

}
